Java Fehlermeldung
Java kennt eine Vielzahl von Fehlermeldungen, die dem Benutzer helfen sollen, den Fehler möglichst gut zu finden, zu verstehen und zu entfernen. Fehlerübersicht: *''class, interface or enum expected'': Java erwartet den Code für eine Klasse oder etwas vergleichbares. Zu Beginn des Dokuments sollte also der Befehl class ''(kleingeschrieben) gefolgt von einem Klassennamen und geschweiften Klammern stehen. *' expected:' Ein identifier ist ein Bezeichner für etwas, beispielsweise eine Variable, ein Objekt, eine Klasse ect. An der markierten Stelle soll man sich also möglicherweise den Namen für diese Ding ausdenken oder einen Namen verwenden den man anderswo definiert hat. Es kann aber auch sein, dass hier ein Datentyp fehlt. Siehe am besten Attribute, Methoden oder Kontrollstrukturen je nach dem, was man gerade programmiert. *'{' expected:'' Java erwartet hier eine öffnende geschweifte Klammer. *';' expected: Häufiger harmloser Fehler. Am Ende irgendeines Befehls fehlt ein Strichpunkt. *''reached end of file while parsing:'' Ein sehr häufiger Fehler. Meist läuft es darauf hinaus, dass man irgendwo eine Klammer geöffnet hat und vergessen hat, diese auch wieder zu schließen. Oder man hat mehr Klammern geöffnet als geschlossen. Es empfiehlt sich, an der angegebenen Stelle genau nachzuzählen, wie viele Klammern man geöffnet und wie viele man wieder geschlossen hat. *''illegal start of expression:'' Man hat an der markierten Stelle falsch angefangen. Beispielsweise hat man den Strichpunkt zu früh gesetzt oder vergessen nach einem Istgleichzeichen (=) einen Wert einzutragen. *''incompatible types - found XXX but expected YYY'': Hier gibt es ein Problem mit den Datentypen. Zunächst sollte man hier herauslesen, welche beiden Datentypen anstatt XXX und YYY hier in der Fehlermeldung stehen. found XXX gibt den Datentyp an, den der Programmierer hier eingesetzt hat, expected YYY gibt an, welchen Datentyp Java von ihm erwartet. Bsp: Der Befehl String bla = 5; liefert die Fehlermeldung incompatible types - f'''ound int but expected Java.lang.String '.Das bedeutet der Programmierer hat mit der Zahl 5 einen int angegeben, hätte aber einen String also beispielsweise "fünf" angeben sollen. Dieses Problem tritt auch auf, wenn man ein Objekt der falschen Klasse angibt. *''possible loss of precision found: double; required: int :Dies ist eigentlich ein spezieller Fall von incompatible types. Ein beispielhafter Befehl wäre''' int x = 3.4'; Der Programmierer gibt an, dass die Variable x vom Typ int also ganze Zahl ist, als Wert gibt er jedoch 3,4 an. Dies ist nicht möglich. Man kann doubles zu ints konvertieren, in dem man einem Typecast macht, jedoch wird die Kommazahl dann einfach abgeschnitten. Es bleibt nur der Wert 3 übrig. *java.lang.NullPointerException:'' Sehr häufige Fehlermeldung, die oft schwer zu beseitigen ist. Effektiv wird irgendwo im Programm eine Objektvariable verwendet, also ein Attribut oder eine Methode dieses Objektes aufegerufen. Das Objekt ist jedoch null, die Objektvariable also leer. Beispielprogramm: Object x = null; x.equals(y); Hier enthält die Variable x kein Objekt, aber es wird von x eine Methode aufgerufen, das erzeugt diesen Fehler. *''java.lang.ArrayIndexOutOfBoundsException:'' Arrays (Felder) haben eine festgelegte Größe. Erzeugt man ein Array beispielsweise mit dem Befehl int[] x = new int3, so hat es drei Elemente. Es sind Zugriffe wie x0, x1 und x2 erlaubt. Jedoch gibt es kein x3 mehr, es tritt eben diese Fehlermeldung auf. Das gleiche passiert, wenn man negative Werte in die eckigen Klammern einsetzt.